समीक्षा के लिए दंकराड फीस्ट और आदित्य असगांवकर को विशेष धन्यवाद
शेयरिंग एथेरियम स्केलेबिलिटी का भविष्य है, और यह पारिस्थितिकी तंत्र को प्रति सेकंड कई हजारों लेनदेन का समर्थन करने में मदद करने के लिए महत्वपूर्ण होगा और दुनिया के बड़े हिस्से को नियमित रूप से एक सस्ती कीमत पर प्लेटफॉर्म का उपयोग करने की अनुमति देगा। हालाँकि, यह एथेरियम पारिस्थितिकी तंत्र में और अधिक व्यापक रूप से ब्लॉकचेन पारिस्थितिकी तंत्र में अधिक गलत समझा अवधारणाओं में से एक है। यह बहुत विशिष्ट गुणों वाले विचारों के एक बहुत विशिष्ट सेट को संदर्भित करता है, लेकिन यह अक्सर उन तकनीकों के साथ मिल जाता है जिनमें बहुत अलग और अक्सर बहुत कमजोर सुरक्षा गुण होते हैं। इस पोस्ट का उद्देश्य यह बताना होगा कि शार्डिंग क्या विशिष्ट गुण प्रदान करता है, यह अन्य तकनीकों से कैसे भिन्न होता है जो कि शार्डिंग नहीं हैं, और इन गुणों को प्राप्त करने के लिए एक शार्प सिस्टम को क्या त्याग करना पड़ता है।
शार्डिंग का वर्णन करने का सबसे अच्छा तरीका समस्या कथन से शुरू होता है जिसने समाधान को आकार दिया और प्रेरित किया: स्केलेबिलिटी ट्रिलेम्मा ।
स्केलेबिलिटी ट्रिलेम्मा कहती है कि तीन गुण हैं जो एक ब्लॉकचेन के लिए प्रयास करते हैं, और यह कि, यदि आप "सरल" तकनीकों से चिपके रहते हैं, तो आप उन तीन में से केवल दो प्राप्त कर सकते हैं । तीन गुण हैं:
मापनीयता : श्रृंखला एक नियमित नोड की तुलना में अधिक लेनदेन की प्रक्रिया कर सकती है (सोचें: एक उपभोक्ता लैपटॉप) सत्यापित कर सकता है।
विकेंद्रीकरण : बड़े केंद्रीकृत अभिनेताओं के एक छोटे समूह पर बिना किसी भरोसे के निर्भरता के श्रृंखला चल सकती है। इसका आमतौर पर अर्थ यह है कि नोड्स के एक सेट का कोई विश्वास (या ईमानदार-बहुमत की धारणा) नहीं होना चाहिए, जिसे आप केवल एक उपभोक्ता लैपटॉप के साथ नहीं जोड़ सकते।
सुरक्षा : श्रृंखला उस पर हमला करने की कोशिश कर रहे भाग लेने वाले नोड्स के एक बड़े प्रतिशत का विरोध कर सकती है (आदर्श रूप से 50%; 25% से ऊपर कुछ भी ठीक है, 5% निश्चित रूप से ठीक नहीं है)।
अब हम "आसान समाधान" के तीन वर्गों को देख सकते हैं जिन्हें केवल तीन में से दो मिलते हैं:
पारंपरिक ब्लॉकचेन - जिसमें बिटकॉइन, प्री-पीओएस/शार्डिंग एथेरियम, लिटकोइन और अन्य समान श्रृंखलाएं शामिल हैं। ये एक पूर्ण नोड चलाने वाले प्रत्येक भागीदार पर भरोसा करते हैं जो प्रत्येक लेनदेन की पुष्टि करता है, और इसलिए उनके पास विकेंद्रीकरण और सुरक्षा है, लेकिन स्केलेबिलिटी नहीं है।
हाई-टीपीएस चेन - डीपीओएस परिवार सहित, लेकिन कई अन्य भी। ये छोटी संख्या में नोड्स (अक्सर 10-100) पर भरोसा करते हैं, जो आपस में आम सहमति बनाए रखते हैं, जिसमें उपयोगकर्ताओं को इनमें से अधिकांश नोड्स पर भरोसा करना पड़ता है। यह स्केलेबल और सुरक्षित है (उपरोक्त परिभाषाओं का उपयोग करके), लेकिन यह विकेंद्रीकृत नहीं है।
बहु-श्रृंखला पारिस्थितिकी तंत्र - यह अलग-अलग श्रृंखलाओं पर अलग-अलग अनुप्रयोगों को लाइव करके और उनके बीच बात करने के लिए क्रॉस-चेन-संचार प्रोटोकॉल का उपयोग करके "स्केलिंग आउट" की सामान्य अवधारणा को संदर्भित करता है। यह विकेंद्रीकृत और स्केलेबल है, लेकिन यह सुरक्षित नहीं है, क्योंकि एक हमलावर को उस श्रृंखला को तोड़ने के लिए कई श्रृंखलाओं में से एक में केवल एक आम सहमति नोड बहुमत प्राप्त करने की आवश्यकता होती है (इसलिए अक्सर < पूरे पारिस्थितिकी तंत्र का <1%) और संभवतः लहर प्रभाव का कारण बनता है। अन्य श्रृंखलाओं में अनुप्रयोगों को बहुत नुकसान।
शेयरिंग एक ऐसी तकनीक है जो आप तीनों को प्राप्त करती है। एक शापित ब्लॉकचेन है:
बाकी पोस्ट में वर्णन किया जाएगा कि कैसे शार्प ब्लॉकचैन ऐसा करने का प्रबंधन करते हैं।
शार्डिंग को समझने का सबसे आसान संस्करण रैंडम सैंपलिंग के माध्यम से शार्डिंग है। रैंडम सैंपलिंग के माध्यम से शेयरिंग में शार्डिंग के रूपों की तुलना में कमजोर ट्रस्ट गुण होते हैं, जिन्हें हम एथेरियम इकोसिस्टम में बना रहे हैं, लेकिन यह सरल तकनीक का उपयोग करता है।
मूल विचार इस प्रकार है। मान लीजिए कि आपके पास बड़ी संख्या में (जैसे 10000) सत्यापनकर्ताओं के साथ हिस्सेदारी श्रृंखला का सबूत है, और आपके पास बड़ी संख्या में (उदाहरण के लिए 100) ब्लॉक हैं जिन्हें सत्यापित करने की आवश्यकता है। कोई भी एक कंप्यूटर इतना शक्तिशाली नहीं है कि अगले ब्लॉक के आने से पहले इन सभी ब्लॉकों को मान्य कर सके।
इसलिए, हम क्या करते हैं कि हम सत्यापन करने के काम को बेतरतीब ढंग से विभाजित कर देते हैं। हम सत्यापनकर्ता सूची को बेतरतीब ढंग से फेरबदल करते हैं, और हम पहले ब्लॉक को सत्यापित करने के लिए फेरबदल सूची में पहले 100 सत्यापनकर्ताओं को असाइन करते हैं, दूसरे ब्लॉक को सत्यापित करने के लिए फेरबदल सूची में दूसरे 100 सत्यापनकर्ता, आदि। सत्यापनकर्ताओं का एक यादृच्छिक रूप से चयनित समूह जिसे सौंपा जाता है किसी ब्लॉक को सत्यापित करना (या कोई अन्य कार्य करना) समिति कहलाता है।
जब कोई सत्यापनकर्ता किसी ब्लॉक को सत्यापित करता है, तो वे इस तथ्य की पुष्टि करते हुए एक हस्ताक्षर प्रकाशित करते हैं कि उन्होंने ऐसा किया था। बाकी सभी, 100 संपूर्ण ब्लॉकों को सत्यापित करने के बजाय, अब केवल 10000 हस्ताक्षरों को सत्यापित करते हैं - बहुत कम मात्रा में काम, विशेष रूप से बीएलएस हस्ताक्षर एकत्रीकरण के साथ। प्रत्येक ब्लॉक को एक ही पी2पी नेटवर्क के माध्यम से प्रसारित करने के बजाय, प्रत्येक ब्लॉक को एक अलग उप-नेटवर्क पर प्रसारित किया जाता है, और नोड्स को केवल उन ब्लॉकों के अनुरूप सबनेट में शामिल होने की आवश्यकता होती है जिनके लिए वे जिम्मेदार हैं (या अन्य कारणों से रुचि रखते हैं)।
विचार करें कि क्या होता है यदि प्रत्येक नोड की कंप्यूटिंग शक्ति 2x बढ़ जाती है। क्योंकि प्रत्येक नोड अब 2x अधिक हस्ताक्षरों को सुरक्षित रूप से मान्य कर सकता है, आप 2x अधिक सत्यापनकर्ताओं का समर्थन करने के लिए न्यूनतम जमा राशि में कटौती कर सकते हैं, और इसलिए आप 100 के बजाय 200 समितियां बना सकते हैं।
इसलिए, आप 100 के बजाय प्रति स्लॉट 200 ब्लॉक सत्यापित कर सकते हैं। इसके अलावा, प्रत्येक व्यक्तिगत ब्लॉक 2x बड़ा हो सकता है। इसलिए, आपके पास 2x आकार के 2x अधिक ब्लॉक हैं, या पूरी तरह से 4x अधिक श्रृंखला क्षमता है।
क्या हो रहा है, इसके बारे में बात करने के लिए हम कुछ गणित भाषा का परिचय दे सकते हैं। बिग ओ नोटेशन का उपयोग करते हुए, हम एकल नोड की कम्प्यूटेशनल क्षमता को संदर्भित करने के लिए " ओ (सी) " का उपयोग करते हैं। एक पारंपरिक ब्लॉकचेन O(C) आकार के ब्लॉक को प्रोसेस कर सकता है। ऊपर वर्णित एक शार्प श्रृंखला समानांतर में ओ (सी) ब्लॉक को संसाधित कर सकती है (याद रखें, प्रत्येक नोड को अप्रत्यक्ष रूप से प्रत्येक ब्लॉक को सत्यापित करने की लागत ओ (1) है क्योंकि प्रत्येक नोड को केवल निश्चित संख्या में हस्ताक्षर सत्यापित करने की आवश्यकता होती है), और प्रत्येक ब्लॉक O(C) क्षमता है, और इसलिए शार्प चेन की कुल क्षमता O(C2) है। यही कारण है कि हम इस प्रकार के शार्पनिंग को द्विघात शार्डिंग कहते हैं, और यह प्रभाव एक महत्वपूर्ण कारण है कि हम सोचते हैं कि लंबे समय में, ब्लॉकचैन को स्केल करने का सबसे अच्छा तरीका है।
दो प्रमुख अंतर हैं:
इन दोनों अंतरों से यह सुनिश्चित होता है कि शार्डिंग अनुप्रयोगों के लिए एक ऐसा वातावरण तैयार करता है जो एकल-श्रृंखला पर्यावरण के प्रमुख सुरक्षा गुणों को संरक्षित करता है, जिस तरह से मल्टीचैन पारिस्थितिक तंत्र मौलिक रूप से नहीं करते हैं।
बिटकॉइन सर्किलों में एक सामान्य परहेज, और एक जिससे मैं पूरी तरह सहमत हूं, वह यह है कि बिटकॉइन (या एथेरियम) जैसे ब्लॉकचेन पूरी तरह से एक ईमानदार बहुमत धारणा पर भरोसा नहीं करते हैं । यदि इस तरह के ब्लॉकचेन पर 51% हमला होता है, तो हमलावर कुछ बुरे काम कर सकता है, जैसे लेन-देन को वापस करना या सेंसर करना, लेकिन वे अमान्य लेनदेन नहीं डाल सकते। और यहां तक कि अगर वे लेनदेन को वापस या सेंसर करते हैं, तो नियमित नोड्स चलाने वाले उपयोगकर्ता आसानी से उस व्यवहार का पता लगा सकते हैं, इसलिए यदि समुदाय एक कांटे के साथ हमले को हल करने के लिए समन्वय करना चाहता है जो हमलावर की शक्ति को छीन लेता है तो वे इतनी जल्दी कर सकते हैं।
इस अतिरिक्त सुरक्षा की कमी अधिक केंद्रीकृत उच्च-टीपीएस श्रृंखलाओं की एक प्रमुख कमजोरी है । इस तरह की श्रृंखला में नोड्स चलाने वाले नियमित उपयोगकर्ताओं की संस्कृति नहीं होती है और न ही हो सकती है, और इसलिए प्रमुख नोड्स और पारिस्थितिकी तंत्र के खिलाड़ी अधिक आसानी से एक साथ मिल सकते हैं और एक प्रोटोकॉल परिवर्तन लागू कर सकते हैं जिसे समुदाय बहुत नापसंद करता है। इससे भी बदतर, उपयोगकर्ता के नोड डिफ़ॉल्ट रूप से इसे स्वीकार करेंगे। कुछ समय बाद, उपयोगकर्ता नोटिस करेंगे, लेकिन तब तक जबरन प्रोटोकॉल परिवर्तन एक पूर्ण सिद्ध होगा: समन्वय का बोझ उपयोगकर्ताओं पर परिवर्तन को अस्वीकार करने के लिए होगा, और उन्हें एक दिन या उससे अधिक के मूल्य को वापस करने का दर्दनाक निर्णय लेना होगा। जिस गतिविधि के बारे में सभी ने सोचा था, उसे पहले ही अंतिम रूप दे दिया गया था।
आदर्श रूप से, हम चाहते हैं कि एक ऐसा शार्डिंग हो जो वैधता के लिए 51% विश्वास मान्यताओं से बचा जाए, और सुरक्षा के शक्तिशाली कवच को बनाए रखता है जो पारंपरिक ब्लॉकचेन को पूर्ण सत्यापन से मिलता है। और पिछले कुछ वर्षों में हमारे अधिकांश शोध इसी के बारे में हैं।
हम 51% -अटैक-प्रूफ स्केलेबल सत्यापन समस्या को दो मामलों में विभाजित कर सकते हैं:
गणना को मान्य करना: यह जांचना कि कुछ गणना सही ढंग से की गई थी, यह मानते हुए कि आपके पास गणना के सभी इनपुट हैं।
डेटा उपलब्धता की पुष्टि करना: यह जाँचना कि गणना के लिए इनपुट स्वयं किसी न किसी रूप में संग्रहीत हैं, जहाँ आप वास्तव में आवश्यकता पड़ने पर उन्हें डाउनलोड कर सकते हैं; यह जाँच वास्तव में संपूर्ण इनपुट को स्वयं डाउनलोड किए बिना की जानी चाहिए (क्योंकि डेटा हर ब्लॉक के लिए डाउनलोड करने के लिए बहुत बड़ा हो सकता है)।
एक ब्लॉकचैन में एक ब्लॉक को मान्य करने में गणना और डेटा उपलब्धता जांच दोनों शामिल हैं: आपको यह आश्वस्त होना चाहिए कि ब्लॉक में लेनदेन वैध हैं और ब्लॉक में दावा किया गया नया राज्य रूट हैश उन लेनदेन को निष्पादित करने का सही परिणाम है, लेकिन आप भी यह सुनिश्चित करने की आवश्यकता है कि ब्लॉक से पर्याप्त डेटा वास्तव में प्रकाशित किया गया था ताकि उस डेटा को डाउनलोड करने वाले उपयोगकर्ता राज्य की गणना कर सकें और ब्लॉकचेन को संसाधित करना जारी रख सकें। यह दूसरा भाग एक बहुत ही सूक्ष्म लेकिन महत्वपूर्ण अवधारणा है जिसे डेटा उपलब्धता समस्या कहा जाता है; इस पर बाद में।
गणना को स्केल रूप से मान्य करना अपेक्षाकृत आसान है; तकनीकों के दो परिवार हैं: धोखाधड़ी के सबूत और ZK-SNARKs ।
दो तकनीकों को इस प्रकार वर्णित किया जा सकता है:
X
के साथ गणना C
बनाते हैं, तो आपको आउटपुट Y
मिलता है"। आप डिफ़ॉल्ट रूप से इन संदेशों पर भरोसा करते हैं, लेकिन आप किसी अन्य व्यक्ति के लिए एक चुनौती देने के लिए एक चुनौती देने के लिए अवसर छोड़ देते हैं (एक हस्ताक्षरित संदेश "मैं असहमत हूं, आउटपुट जेड है")। केवल जब कोई चुनौती होती है, तो सभी नोड गणना चलाते हैं। दोनों पक्षों में से जो भी गलत था, वह अपनी जमा राशि खो देता है, और उस गणना के परिणाम पर निर्भर सभी गणनाओं की पुनर्गणना की जाती है।X
पर गणना C
करना आउटपुट Y
देता है"। सबूत क्रिप्टोग्राफिक रूप से "ध्वनि" है: यदि C(x)
Y
के बराबर नहीं है, तो वैध सबूत बनाने के लिए यह कम्प्यूटेशनल रूप से अक्षम है। सबूत भी जल्दी से सत्यापित होता है, भले ही C
को चलाने में बहुत अधिक समय लगता हो। ZK-SNARKs पर अधिक गणितीय विवरण के लिए यह पोस्ट देखें।
धोखाधड़ी के सबूतों के आधार पर गणना मापनीय है क्योंकि "सामान्य स्थिति में" आप एक एकल हस्ताक्षर को सत्यापित करने के साथ एक जटिल गणना चलाने की जगह लेते हैं। एक असाधारण मामला है, जहां आपको गणना की श्रृंखला को सत्यापित करना होगा क्योंकि एक चुनौती है, लेकिन असाधारण मामला बहुत दुर्लभ है क्योंकि इसे ट्रिगर करना बहुत महंगा है (या तो मूल दावेदार या चुनौती देने वाला एक बड़ी जमा राशि खो देता है)। ZK-SNARKs अवधारणात्मक रूप से सरल हैं - वे एक गणना को बहुत सस्ता सबूत सत्यापन के साथ प्रतिस्थापित करते हैं - लेकिन वे कैसे काम करते हैं इसके पीछे गणित काफी जटिल है।
सेमी-स्केलेबल सिस्टम का एक वर्ग है जो केवल गणना को स्केलेबल रूप से सत्यापित करता है, जबकि अभी भी प्रत्येक नोड को सभी डेटा को सत्यापित करने की आवश्यकता होती है। कम्प्यूटेशन के साथ अधिकांश डेटा को बदलने के लिए कंप्रेशन ट्रिक्स के एक सेट का उपयोग करके इसे काफी प्रभावी बनाया जा सकता है। यह रोलअप का दायरा है।
डेटा की उपलब्धता को सत्यापित करने के लिए धोखाधड़ी-सबूत का उपयोग नहीं किया जा सकता है। गणना के लिए धोखाधड़ी के सबूत इस तथ्य पर भरोसा करते हैं कि गणना के इनपुट को मूल दावा प्रस्तुत करने के क्षण में चेन पर प्रकाशित किया जाता है, और इसलिए यदि कोई चुनौती देता है, तो चुनौती निष्पादन ठीक उसी "वातावरण" में हो रहा है जो मूल निष्पादन था हो रहा है। डेटा उपलब्धता की जाँच के मामले में, आप ऐसा नहीं कर सकते, क्योंकि समस्या यह है कि इसे श्रृंखला पर प्रकाशित करने के लिए जाँच करने के लिए बहुत अधिक डेटा है। इसलिए, डेटा उपलब्धता के लिए एक धोखाधड़ी-सबूत योजना एक प्रमुख समस्या में चलती है: कोई व्यक्ति इसे प्रकाशित किए बिना "डेटा एक्स उपलब्ध है" का दावा कर सकता है, चुनौती मिलने की प्रतीक्षा कर सकता है, और उसके बाद ही डेटा एक्स प्रकाशित कर सकता है और चुनौती देने वाले को बाकी के सामने प्रकट कर सकता है। नेटवर्क गलत होना।
मछुआरे की दुविधा में इसका विस्तार किया गया है:
मूल विचार यह है कि दो "दुनिया", एक जहां V1 एक दुष्ट प्रकाशक है और V2 एक ईमानदार चुनौती देने वाला है और दूसरा जहां V1 एक ईमानदार प्रकाशक है और V2 एक दुष्ट चुनौती देने वाला है, उन लोगों के लिए अप्रभेद्य हैं जो डाउनलोड करने की कोशिश नहीं कर रहे थे। उस समय डेटा का वह विशेष टुकड़ा। और निश्चित रूप से, एक स्केलेबल विकेन्द्रीकृत ब्लॉकचैन में, प्रत्येक व्यक्तिगत नोड केवल डेटा के एक छोटे से हिस्से को डाउनलोड करने की उम्मीद कर सकता है, इसलिए नोड्स के केवल एक छोटे से हिस्से को कुछ भी दिखाई देगा, सिवाय केवल इस तथ्य के कि असहमति थी।
तथ्य यह है कि यह भेद करना असंभव है कि कौन सही था और कौन गलत था, डेटा उपलब्धता के लिए काम करने वाली धोखाधड़ी-सबूत योजना को असंभव बना देता है।
दुर्भाग्य से, केवल वैधता सही ढंग से चल रहे ब्लॉकचेन को सुनिश्चित करने के लिए पर्याप्त नहीं है। ऐसा इसलिए है क्योंकि यदि ब्लॉकचेन वैध है लेकिन सभी डेटा उपलब्ध नहीं है, तो उपयोगकर्ताओं के पास डेटा को अपडेट करने का कोई तरीका नहीं है कि उन्हें सबूत उत्पन्न करने की आवश्यकता है कि भविष्य का कोई भी ब्लॉक मान्य है। एक हमलावर जो एक वैध-लेकिन-अनुपलब्ध ब्लॉक उत्पन्न करता है, लेकिन फिर गायब हो जाता है, प्रभावी रूप से श्रृंखला को रोक सकता है। कोई व्यक्ति किसी विशिष्ट उपयोगकर्ता के खाते के डेटा को तब तक रोक सकता है जब तक कि उपयोगकर्ता फिरौती का भुगतान नहीं करता है, इसलिए समस्या विशुद्ध रूप से जीवंतता का मुद्दा नहीं है।
कुछ मजबूत सूचना-सैद्धांतिक तर्क हैं कि यह समस्या मौलिक है, और कोई चतुर चाल नहीं है (उदाहरण के लिए क्रिप्टोग्राफिक संचयकों को शामिल करना) जो इसके आसपास हो सकता है। विवरण के लिए यह पेपर देखें।
कुंजी एक तकनीक है जिसे डेटा उपलब्धता नमूनाकरण कहा जाता है। डेटा उपलब्धता नमूनाकरण निम्नानुसार काम करता है:
इरेज़र कोड "100% उपलब्धता के लिए जाँच" (डेटा का हर एक टुकड़ा उपलब्ध है) समस्या को "50% उपलब्धता के लिए जाँच" (कम से कम आधे टुकड़े उपलब्ध हैं) समस्या में बदल देते हैं। रैंडम सैंपलिंग 50% उपलब्धता की समस्या को हल करता है। यदि 50% से कम डेटा उपलब्ध है, तो कम से कम एक चेक लगभग निश्चित रूप से विफल हो जाएगा, और यदि कम से कम 50% डेटा उपलब्ध है, जबकि कुछ नोड किसी ब्लॉक को उपलब्ध के रूप में पहचानने में विफल हो सकते हैं, तो इसमें समय लगता है ब्लॉक के शेष 50% को वापस लाने के लिए इरेज़र कोड पुनर्निर्माण प्रक्रिया को चलाने के लिए केवल एक ईमानदार नोड। और इसलिए, 1 एमबी ब्लॉक की उपलब्धता की जांच के लिए 1 एमबी डाउनलोड करने की आवश्यकता के बजाय, आपको केवल कुछ किलोबाइट डाउनलोड करने की आवश्यकता है। इससे प्रत्येक ब्लॉक पर डेटा उपलब्धता जाँच चलाना संभव हो जाता है। पीयर-टू-पीयर सबनेट के साथ इस जाँच को कुशलतापूर्वक कैसे कार्यान्वित किया जा सकता है, इसके लिए यह पोस्ट देखें।
ZK-SNARK का उपयोग यह सत्यापित करने के लिए किया जा सकता है कि डेटा के एक टुकड़े पर इरेज़र कोडिंग सही ढंग से की गई थी, और फिर अलग-अलग हिस्सों को सत्यापित करने के लिए मर्कल शाखाओं का उपयोग किया जा सकता है। वैकल्पिक रूप से, आप बहुपद प्रतिबद्धताओं (जैसे। केट (उर्फ KZG) प्रतिबद्धताओं ) का उपयोग कर सकते हैं, जो अनिवार्य रूप से एक साधारण घटक में अलग-अलग तत्वों और शुद्धता सत्यापन को मिटाने और साबित करने के लिए कोडिंग करते हैं - और यही एथेरियम शार्डिंग का उपयोग कर रहा है।
मान लीजिए कि आपके पास 100 ब्लॉक हैं और आप समितियों पर भरोसा किए बिना उन सभी की शुद्धता को कुशलतापूर्वक सत्यापित करना चाहते हैं। हमें निम्नलिखित करने की आवश्यकता है:
प्रत्येक क्लाइंट प्रत्येक ब्लॉक पर डेटा उपलब्धता नमूनाकरण करता है, यह सत्यापित करते हुए कि प्रत्येक ब्लॉक में डेटा उपलब्ध है, जबकि प्रति ब्लॉक केवल कुछ किलोबाइट डाउनलोड करते हैं, भले ही ब्लॉक एक मेगाबाइट या आकार में बड़ा हो। क्लाइंट केवल तभी ब्लॉक स्वीकार करता है जब उसकी उपलब्धता चुनौतियों के सभी डेटा का सही ढंग से जवाब दिया गया हो।
अब जब हमारे पास सत्यापित डेटा उपलब्धता है, तो शुद्धता को सत्यापित करना आसान हो जाता है। दो तकनीकें हैं:
उपरोक्त में से किसी भी मामले में, प्रत्येक ग्राहक को प्रति ब्लॉक केवल थोड़ी मात्रा में सत्यापन कार्य करने की आवश्यकता होती है, चाहे ब्लॉक कितना भी बड़ा क्यों न हो। धोखाधड़ी के सबूत के मामले में, कभी-कभी ब्लॉक को पूरी तरह से ऑन-चेन सत्यापित करने की आवश्यकता होगी, लेकिन यह अत्यंत दुर्लभ होना चाहिए क्योंकि एक चुनौती को ट्रिगर करना बहुत महंगा है।
और इसमें बस इतना ही है! एथेरियम शार्डिंग के मामले में, निकट-अवधि की योजना केवल शार्प्ड ब्लॉक्स को डेटा-ओनली बनाने की है; यानी, शार्क विशुद्ध रूप से एक "डेटा उपलब्धता इंजन" है, और उच्च-थ्रूपुट सुरक्षित लेनदेन प्रसंस्करण क्षमताओं को लागू करने के लिए उस सुरक्षित डेटा स्थान, साथ ही धोखाधड़ी के सबूत या ZK-SNARKs का उपयोग करना लेयर -2 रोलअप का काम है। हालांकि, "मूल" उच्च-थ्रूपुट निष्पादन को जोड़ने के लिए ऐसी अंतर्निहित प्रणाली बनाना पूरी तरह से संभव है।
शार्डिंग का मुख्य लक्ष्य पारंपरिक (गैर-शार्ड) ब्लॉकचेन के सबसे महत्वपूर्ण सुरक्षा गुणों की नकल करने के लिए जितना संभव हो उतना करीब आना है, लेकिन प्रत्येक लेनदेन को व्यक्तिगत रूप से सत्यापित करने के लिए प्रत्येक नोड की आवश्यकता के बिना।
साझाकरण काफी करीब आता है। पारंपरिक ब्लॉकचेन में:
उन्नत सुरक्षा सुविधाओं वाले शार्प ब्लॉकचैन में:
अमान्य ब्लॉक के माध्यम से नहीं जा सकता क्योंकि या तो:
अनुपलब्ध ब्लॉकों को पार नहीं किया जा सकता क्योंकि:
बिना शार्डिंग के पारंपरिक उच्च-टीपीएस श्रृंखलाओं में ये गारंटी प्रदान करने का कोई तरीका नहीं है। मल्टीचैन पारिस्थितिक तंत्र में एक हमलावर की समस्या से बचने का कोई तरीका नहीं है जो हमले के लिए एक श्रृंखला का चयन करता है और आसानी से इसे ले लेता है (श्रृंखला सुरक्षा साझा कर सकती है, लेकिन अगर यह खराब तरीके से किया जाता है तो यह एक वास्तविक पारंपरिक उच्च-टीपीएस श्रृंखला में बदल जाएगा। इसके सभी नुकसानों के साथ, और यदि यह अच्छी तरह से किया जाता है, तो यह उपरोक्त शार्डिंग तकनीकों का अधिक जटिल कार्यान्वयन होगा)।
साइडचेन अत्यधिक कार्यान्वयन-निर्भर हैं, लेकिन वे आम तौर पर पारंपरिक उच्च-टीपीएस श्रृंखलाओं की कमजोरियों (यह है कि वे खनिक/सत्यापनकर्ता साझा करते हैं), या मल्टीचैन पारिस्थितिक तंत्र की कमजोरियों के लिए कमजोर हैं (यह है कि वे खनिकों को साझा नहीं करते हैं/सत्यापनकर्ता ) साझा श्रृंखलाएं इन मुद्दों से बचती हैं।
हालाँकि, शार्प सिस्टम के कवच में कुछ झंकार हैं । विशेष रूप से:
ये वैध चिंताएं हैं, हालांकि हमारे विचार में वे केंद्रीकृत परत -2 सेवाओं के बजाय अधिक अनुप्रयोगों को ऑन-चेन चलाने की अनुमति देकर उपयोगकर्ता-स्तरीय केंद्रीकरण में कमी से बहुत अधिक हैं। उस ने कहा, ये चिंताएं, विशेष रूप से अंतिम दो, एक निश्चित बिंदु से परे एक शार्प चेन के थ्रूपुट को बढ़ाने के लिए वास्तविक बाधा हैं। द्विघात शार्पनिंग की द्विघातता की एक सीमा होती है।
संयोग से, यदि उनका थ्रूपुट बहुत अधिक हो जाता है, तो शार्प किए गए ब्लॉकचेन के बढ़ते सुरक्षा जोखिम भी प्रमुख कारण हैं कि सुपर-द्विघात शार्डिंग का विस्तार करने का प्रयास काफी हद तक छोड़ दिया गया है; ऐसा लगता है कि द्विघात शार्पिंग को केवल द्विघात रखना ही वास्तव में खुशहाल माध्यम है।
शार्डिंग का एक विकल्प जो अक्सर प्रस्तावित किया जाता है वह एक श्रृंखला है जो एक केंद्रीकृत उच्च-टीपीएस श्रृंखला की तरह संरचित है, सिवाय इसके कि यह वैधता और उपलब्धता के सत्यापन की अनुमति देने के लिए डेटा उपलब्धता नमूनाकरण और शीर्ष पर शार्डिंग का उपयोग करता है।
यह केंद्रीकृत उच्च-टीपीएस श्रृंखलाओं में सुधार करता है क्योंकि वे आज भी मौजूद हैं, लेकिन यह अभी भी एक तेज प्रणाली की तुलना में काफी कमजोर है। यह कुछ कारणों से है:
आधार परत के रूप में उचित रूप से शार्प किए गए सिस्टम बेहतर होते हैं। एक शार्प्ड बेस लेयर को देखते हुए, आप हमेशा एक केंद्रीकृत-उत्पादन सिस्टम बना सकते हैं (उदाहरण के लिए क्योंकि आप defi के लिए सिंक्रोनस कंपोज़ेबिलिटी के साथ एक उच्च-थ्रूपुट डोमेन चाहते हैं) इसे रोलअप के रूप में बनाकर शीर्ष पर स्तरित किया जा सकता है। लेकिन अगर आपके पास केंद्रीकृत ब्लॉक उत्पादन पर निर्भरता वाली आधार परत है, तो आप शीर्ष पर अधिक-विकेंद्रीकृत परत 2 नहीं बना सकते हैं।
यहाँ भी प्रकाशित।